home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / cblas / test_axpy.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-04-18  |  5.2 KB  |  234 lines

  1. #include <gsl/gsl_test.h>
  2. #include <gsl/gsl_ieee_utils.h>
  3. #include <gsl/gsl_math.h>
  4. #include <gsl/gsl_cblas.h>
  5.  
  6. #include "tests.h"
  7.  
  8. void
  9. test_axpy (void) {
  10. const double flteps = 1e-4, dbleps = 1e-6;
  11.   {
  12.    int N = 1;
  13.    float alpha = 0.0f;
  14.    float X[] = { 0.018f };
  15.    int incX = 1;
  16.    float Y[] = { -0.417f };
  17.    int incY = -1;
  18.    float expected[] = { -0.417f };
  19.    cblas_saxpy(N, alpha, X, incX, Y, incY);
  20.    {
  21.      int i;
  22.      for (i = 0; i < 1; i++) {
  23.        gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 64)");
  24.      }
  25.    };
  26.   };
  27.  
  28.  
  29.   {
  30.    int N = 1;
  31.    double alpha = 0;
  32.    double X[] = { 0.071 };
  33.    int incX = 1;
  34.    double Y[] = { -0.888 };
  35.    int incY = -1;
  36.    double expected[] = { -0.888 };
  37.    cblas_daxpy(N, alpha, X, incX, Y, incY);
  38.    {
  39.      int i;
  40.      for (i = 0; i < 1; i++) {
  41.        gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 65)");
  42.      }
  43.    };
  44.   };
  45.  
  46.  
  47.   {
  48.    int N = 1;
  49.    float alpha[2] = {1.0f, 0.0f};
  50.    float X[] = { -0.542f, -0.362f };
  51.    int incX = 1;
  52.    float Y[] = { -0.459f, -0.433f };
  53.    int incY = -1;
  54.    float expected[] = { -1.001f, -0.795f };
  55.    cblas_caxpy(N, alpha, X, incX, Y, incY);
  56.    {
  57.      int i;
  58.      for (i = 0; i < 1; i++) {
  59.        gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 66) real");
  60.        gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 66) imag");
  61.      };
  62.    };
  63.   };
  64.  
  65.  
  66.   {
  67.    int N = 1;
  68.    double alpha[2] = {-1, 0};
  69.    double X[] = { 0.003, -0.514 };
  70.    int incX = 1;
  71.    double Y[] = { -0.529, 0.743 };
  72.    int incY = -1;
  73.    double expected[] = { -0.532, 1.257 };
  74.    cblas_zaxpy(N, alpha, X, incX, Y, incY);
  75.    {
  76.      int i;
  77.      for (i = 0; i < 1; i++) {
  78.        gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 67) real");
  79.        gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 67) imag");
  80.      };
  81.    };
  82.   };
  83.  
  84.  
  85.   {
  86.    int N = 1;
  87.    float alpha = 0.1f;
  88.    float X[] = { 0.771f };
  89.    int incX = -1;
  90.    float Y[] = { 0.507f };
  91.    int incY = 1;
  92.    float expected[] = { 0.5841f };
  93.    cblas_saxpy(N, alpha, X, incX, Y, incY);
  94.    {
  95.      int i;
  96.      for (i = 0; i < 1; i++) {
  97.        gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 68)");
  98.      }
  99.    };
  100.   };
  101.  
  102.  
  103.   {
  104.    int N = 1;
  105.    double alpha = -0.3;
  106.    double X[] = { 0.029 };
  107.    int incX = -1;
  108.    double Y[] = { -0.992 };
  109.    int incY = 1;
  110.    double expected[] = { -1.0007 };
  111.    cblas_daxpy(N, alpha, X, incX, Y, incY);
  112.    {
  113.      int i;
  114.      for (i = 0; i < 1; i++) {
  115.        gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 69)");
  116.      }
  117.    };
  118.   };
  119.  
  120.  
  121.   {
  122.    int N = 1;
  123.    float alpha[2] = {-0.3f, 0.1f};
  124.    float X[] = { 0.194f, -0.959f };
  125.    int incX = -1;
  126.    float Y[] = { 0.096f, 0.032f };
  127.    int incY = 1;
  128.    float expected[] = { 0.1337f, 0.3391f };
  129.    cblas_caxpy(N, alpha, X, incX, Y, incY);
  130.    {
  131.      int i;
  132.      for (i = 0; i < 1; i++) {
  133.        gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 70) real");
  134.        gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 70) imag");
  135.      };
  136.    };
  137.   };
  138.  
  139.  
  140.   {
  141.    int N = 1;
  142.    double alpha[2] = {0, 1};
  143.    double X[] = { 0.776, -0.671 };
  144.    int incX = -1;
  145.    double Y[] = { 0.39, 0.404 };
  146.    int incY = 1;
  147.    double expected[] = { 1.061, 1.18 };
  148.    cblas_zaxpy(N, alpha, X, incX, Y, incY);
  149.    {
  150.      int i;
  151.      for (i = 0; i < 1; i++) {
  152.        gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 71) real");
  153.        gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 71) imag");
  154.      };
  155.    };
  156.   };
  157.  
  158.  
  159.   {
  160.    int N = 1;
  161.    float alpha = 1.0f;
  162.    float X[] = { 0.647f };
  163.    int incX = -1;
  164.    float Y[] = { 0.016f };
  165.    int incY = -1;
  166.    float expected[] = { 0.663f };
  167.    cblas_saxpy(N, alpha, X, incX, Y, incY);
  168.    {
  169.      int i;
  170.      for (i = 0; i < 1; i++) {
  171.        gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 72)");
  172.      }
  173.    };
  174.   };
  175.  
  176.  
  177.   {
  178.    int N = 1;
  179.    double alpha = -1;
  180.    double X[] = { -0.558 };
  181.    int incX = -1;
  182.    double Y[] = { 0.308 };
  183.    int incY = -1;
  184.    double expected[] = { 0.866 };
  185.    cblas_daxpy(N, alpha, X, incX, Y, incY);
  186.    {
  187.      int i;
  188.      for (i = 0; i < 1; i++) {
  189.        gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 73)");
  190.      }
  191.    };
  192.   };
  193.  
  194.  
  195.   {
  196.    int N = 1;
  197.    float alpha[2] = {-0.3f, 0.1f};
  198.    float X[] = { 0.899f, -0.624f };
  199.    int incX = -1;
  200.    float Y[] = { 0.155f, -0.33f };
  201.    int incY = -1;
  202.    float expected[] = { -0.0523f, -0.0529f };
  203.    cblas_caxpy(N, alpha, X, incX, Y, incY);
  204.    {
  205.      int i;
  206.      for (i = 0; i < 1; i++) {
  207.        gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 74) real");
  208.        gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 74) imag");
  209.      };
  210.    };
  211.   };
  212.  
  213.  
  214.   {
  215.    int N = 1;
  216.    double alpha[2] = {0, 1};
  217.    double X[] = { -0.451, 0.768 };
  218.    int incX = -1;
  219.    double Y[] = { 0.007, 0.732 };
  220.    int incY = -1;
  221.    double expected[] = { -0.761, 0.281 };
  222.    cblas_zaxpy(N, alpha, X, incX, Y, incY);
  223.    {
  224.      int i;
  225.      for (i = 0; i < 1; i++) {
  226.        gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 75) real");
  227.        gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 75) imag");
  228.      };
  229.    };
  230.   };
  231.  
  232.  
  233. }
  234.